# -*- coding: utf-8 -*-
# =============================================================================
#     FileName:
#         Desc:
#       Author:
#        Email:
#     HomePage:
#      Version:
#   LastChange:
#      History:
# =============================================================================
import time

from utils.logger_helper import LoggerHelper
from task_server.task_item import TaskItem
from task_server.task_enum import TaskStatus

logger = LoggerHelper.get_logger()


class TaskRunner(object):
    def __init__(self, task_item: TaskItem):
        self.task_item = task_item

    def _update_task_status(self):
        self.task_item.log_info("开始更新任务状态")
        time.sleep(1)
        self.task_item.log_info("完成更新任务状态")

    def _is_runnable(self):
        self.task_item.log_info("开始检查任务是否可执行")
        if self.task_item.task_id != "":
            self.task_item.log_warning("任务不满足执行条件,无法执行")
            return False
        self.task_item.log_info("任务满足执行条件,可以执行")
        return False

    def _deploy_task(self):
        """
        部署任务执行环境
        :return:
        """
        pass

    def start_task(self):
        """
        启动待执行的任务,并刷新任务状态
        :return:
        """
        self.task_item.log_warning("开始启动任务")
        if self._is_runnable():
            self.task_item.log_info("完成启动任务")
        else:
            self.task_item.log_warning("启动任务失败")

    def stop_task(self):
        """
        停止正在运行的任务，并刷新任务状态和任务结果
        :return:
        """
        self.task_item.log_info("开始关停任务")
        time.sleep(1)
        self.task_item.log_info("完成关停任务")

    def check_task(self):
        """
        检查正在运行的任务,刷新任务状态和任务结果
        :return:
        """
        self.task_item.log_info("开始检查任务执行结果")
        time.sleep(1)
        task_status = TaskStatus.RUNNING
        task_result = "正在执行"
        self._update_task_status()
        self.task_item.log_info("完成检查任务执行结果")
